package com.ruoyi.jproom.mapper;

import com.ruoyi.jproom.entity.Housing;
import com.ruoyi.jproom.entity.MeHaveRentInfo;
import com.ruoyi.jproom.entity.MeSellInfo;
import com.ruoyi.jproom.entity.Sell;
import com.ruoyi.jproom.utils.BaseResult;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author zeo
 * @explain 房源信息持久层
 * @date 2020/7/27 11:08
 */
public interface HousingEntrustMapper {


    /**
     * 根据房源ID获取房源对象
     * @param housingId
     * @return
     */
    Housing findHousingById(String housingId);


    /**
     * 客户端有房出售委托
     * @param meSellInfo
     * @return
     */
    int insertMeSellEntrust(MeSellInfo meSellInfo);

    /**
     * 客户端有房出租委托
     * @param meHaveRentInfo
     * @return
     */
    int insertMeHaveRentEntrust(MeHaveRentInfo meHaveRentInfo);

    /**
     * 客户端获取所有委托信息
     * @param sell
     * @return
     */
    List<Map<String,Object>> queryEntrustInfoList(Sell sell);

    /**
     * 服务端获取用户委托的有房出售委托数据
     * @return
     */
    List<MeSellInfo> findMeSellEntrustList();

    /**
     * 服务端根据委托id获取委托对象
     * * @return
     */
    MeSellInfo findMeSellEntrustById(String meSellId);

    /**
     * 服务器新增售房房源
     * @param housing
     */
    int addHousingSell(Housing housing);

    /**
     * 生成小区和房源后补全委托小区id以及将处理状态改为已处理
     * @param meSellId
     * @param residentialId
     * @return
     */
    int updateMeSellCompletion(@Param("meSellId") String meSellId,@Param("residentialId") String residentialId);

    /**
     * 修改售房委托处理状态为已处理
     * @param meSellId
     * @return
     */
    int updateMeSellHandle(String meSellId);


    /**
     * 根据出售委托ID找房源ID
     * @param MeSellEntrustId
     * @return
     */
    String findHousingIdMeSellEntrustId(String MeSellEntrustId);



    /**
     * 服务端获取用户委托的有房出租委托数据
     * @return
     */
    List<MeHaveRentInfo> findMeHaveRentEntrustList();

    /**
     * 服务端根据委托id获取出租委托对象
     * * @return
     */
    MeHaveRentInfo findMeHaveRentInfoEntrustById(String meHaveRentId);

    /**
     * 服务器新增出租房源
     * @param housing
     */
    int addHousingRent(Housing housing);


    /**
     * 生成小区和房源后补全委托小区id以及将处理状态改为已处理
     * @param meHaveRentId
     * @param residentialId
     * @return
     */
    int updateMeHaveRentCompletion(@Param("meHaveRentId") String meHaveRentId,@Param("residentialId") String residentialId);

    /**
     * 修改出租委托处理状态为已处理
     * @param meHaveRentId
     * @return
     */
    int updateMeHaveRentHandle(String meHaveRentId);

    /**
     * 根据出租委托ID找房源ID
     * @param MeHaveRentEntrustId
     * @return
     */
    String findHousingIdByMeHaveRentEntrustId(String MeHaveRentEntrustId);

}
